// Player.h provides the attributes of the Player class
//-----------------

#if !defined( PlayerH)
#define PlayerH

//-----------------
// Includes various libraries and files
#include <cassert>		// for asserts
#include <cmath>
#include <Windows.h>

#include "WorldObject.h"
//-----------------

class Player
	: public WorldObject
{
	public:
		// constructors
		Player();
		Player( const float x, const float y, const float z);

		// accessors
		float get_phi() const;
		float get_theta() const;
		float get_look_at_x() const;
		float get_look_at_y() const;
		float get_look_at_z() const;
		int get_height() const;
		int get_mouse_invert() const;

		bool get_running() const;
		bool get_walking() const;

		int get_score() const;

		// mutators
		void set_phi( const float p);
		void set_theta( const float t);
		void set_height( const int h);
		void set_mouse_invert( const int i);

		void set_walking( const bool w);
		void set_running( const bool r);
		void move( const char direction);
		void update_bob( const bool& moved);

		void update_score( const int s);


	private:
		float phi_, theta_;		// for allowing the player to 'look around' on the spot
		int height_, mouse_invert_;

		bool walking_, running_;
		float bob_offset_, bob_amount_, bob_constraint_, bob_y_;

		int score_;
};

#endif